package vis.core.domain.sys.config;

import vis.core.service.sys.SysDictService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;

/**
 * 系统级别配置
 */
@Component
public class SysConfig {

    @Resource
    private SysDictService dict;

    //资源放行路径
    public String resIgnore() {
        return dict.getString("sys_res_ignore", "");
    }

    //IP白名单，逗号分隔，默认为空=无限制，白名单权限大于黑名单
    public String whiteIp() {
        return dict.getString("sys_white_ip", "");
    }

    //IP黑名单，逗号分隔，默认为空=无限制，白名单权限大于黑名单
    public String blackIp() {
        return dict.getString("sys_black_ip", "");
    }

    //是否禁止登录：0允许登录；1禁止登录
    public boolean loginIsDisable() {
        return dict.getString("sys_user_login_is_disable", "").equals("1");
    }

    //允许登录时间，默认为空=无限制
    public String loginAllowTime() {
        return dict.getString("sys_user_login_allow_time", "");
    }

    //登录失败，判断条件，一段时间+次数，默认为空=无限制
    public String loginErrorAllowTime() {
        return dict.getString("sys_user_login_error_allow_time", "");
    }

    //登录失败，判断条件，一段时间+次数，默认为空=无限制
    public String loginErrorAllowCount() {
        return dict.getString("sys_user_login_error_allow_count", "");
    }

    //连续登录失败，冻结时长，默认为空=无限制
    public String loginErrorDisableMinute() {
        return dict.getString("sys_user_login_error_disable_minute", "");
    }

    //连续登录失败，邮件通知人邮箱，默认为空=无限制
    public String loginErrorSendEmail() {
        return dict.getString("sys_user_login_error_send_email", "");
    }

    //连续登录失败，短信通知人电话，默认为空=无限制
    public String loginErrorSendPhone() {
        return dict.getString("sys_user_login_error_send_phone", "");
    }

}
